﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAO.Model;
using DAO.Bussiness.Repository;

namespace Restaurante
{
    public partial class reservarMesa : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {           
        }

        protected void btnCancelarComanda_Click(object sender, EventArgs e)
        {
            Response.Redirect("home.aspx");
        }

        protected void btnAceptaComandar_Click(object sender, EventArgs e)
        {
            ReservaRepository rr = new ReservaRepository();
            Reserva reserva = new Reserva();
            Cliente cli = new Cliente();
            ClienteRepository cr = new ClienteRepository();          
            try{
                String lal = calFecha.SelectedDate.Date.ToShortDateString();

              
                    String f = calFecha.SelectedDate.Date.ToShortDateString();
                    String hora = ddlHora.SelectedItem.Text;
                    DateTime hoy = DateTime.Now;
                   
                    DateTime fecha = Convert.ToDateTime(f + " " + hora);
                    
                     if(hoy.CompareTo(fecha) <= 1)
                    {
                        cli.Apellido = txbApellido.Text;
                        cli.Nombre = txbNombre.Text;
                        cli.Tipo_Doc = Convert.ToInt32(ddlTipo.SelectedItem.Value);
                        cli.Nro_Doc = Convert.ToInt32(txbDni.Text);
                        cr.Add(cli);
                        cr.Save();

                        reserva.Fecha_Reserva = fecha; //calFecha.SelectedDate;
                        reserva.Id_Cliente = cli.Id_Cliente;
                        reserva.Cantidad_Comensales = Convert.ToInt32(txbCantidad.Text);
                        reserva.Id_Mesa = Convert.ToInt32(ddlSector.SelectedItem.Value);
                        reserva.Id_Estado = 9;
                        rr.Add(reserva);
                        rr.Save();
                    }else{
                        lblError.Text = "La fecha debe ser mayor a hoy !!!";   
                    }

                     ClientScript.RegisterStartupScript(this.GetType(), "myScript", "<script>javascript: alert('Se guardaron los datos satisfactoriamente');</script>");
            }
            catch (Exception ex) {
                lblError.Text = "Error, en la grabación de la reserva !!!";
                
            }
            finally{                                
                CleanControl(this.Controls);
                //Response.Redirect("home.aspx");                
            }
        }
        public void CleanControl(ControlCollection controles){            
            foreach (Control control in controles)
            {
                if (control is TextBox)
                    ((TextBox)control).Text = string.Empty;
                else if (control is DropDownList)
                    ((DropDownList)control).ClearSelection();
                else if (control is Calendar)
                    ((Calendar)control).SelectedDate = System.DateTime.Now;
                else if (control.HasControls())
                    //Esta linea detécta un Control que contenga otros Controles
                    //Así ningún control se quedará sin ser limpiado.
                    CleanControl(control.Controls);                
            }
        }

        protected void calFecha_SelectionChanged1(object sender, EventArgs e)
        {
            if (calFecha.SelectedDate <= DateTime.Now.AddDays(-1))
            {
                calFecha.SelectedDate = DateTime.Now;
            }
        }    
    }
}
